@fern-api/generator-cli 0.0.31 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +379 -242
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -34,7 +34,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
34
34
|
var require_build = __commonJS({
|
|
35
35
|
"../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/index.cjs"(exports2, module2) {
|
|
36
36
|
"use strict";
|
|
37
|
-
var
|
|
37
|
+
var fs3 = require("fs");
|
|
38
38
|
var util = require("util");
|
|
39
39
|
var path4 = require("path");
|
|
40
40
|
var shim2;
|
|
@@ -198,14 +198,14 @@ var require_build = __commonJS({
|
|
|
198
198
|
}
|
|
199
199
|
var nodePlatformShim = {
|
|
200
200
|
fs: {
|
|
201
|
-
readFileSync:
|
|
202
|
-
writeFile:
|
|
201
|
+
readFileSync: fs3.readFileSync,
|
|
202
|
+
writeFile: fs3.writeFile
|
|
203
203
|
},
|
|
204
204
|
format: util.format,
|
|
205
205
|
resolve: path4.resolve,
|
|
206
206
|
exists: (file) => {
|
|
207
207
|
try {
|
|
208
|
-
return
|
|
208
|
+
return fs3.statSync(file).isFile();
|
|
209
209
|
} catch (err) {
|
|
210
210
|
return false;
|
|
211
211
|
}
|
|
@@ -224,7 +224,7 @@ var require_build2 = __commonJS({
|
|
|
224
224
|
"use strict";
|
|
225
225
|
var util = require("util");
|
|
226
226
|
var path4 = require("path");
|
|
227
|
-
var
|
|
227
|
+
var fs3 = require("fs");
|
|
228
228
|
function camelCase3(str) {
|
|
229
229
|
const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();
|
|
230
230
|
if (!isCamelCase) {
|
|
@@ -1173,7 +1173,7 @@ var require_build2 = __commonJS({
|
|
|
1173
1173
|
if (typeof require !== "undefined") {
|
|
1174
1174
|
return require(path5);
|
|
1175
1175
|
} else if (path5.match(/\.json$/)) {
|
|
1176
|
-
return JSON.parse(
|
|
1176
|
+
return JSON.parse(fs3.readFileSync(path5, "utf8"));
|
|
1177
1177
|
} else {
|
|
1178
1178
|
throw Error("only .json config files are supported in ESM");
|
|
1179
1179
|
}
|
|
@@ -2881,7 +2881,7 @@ var require_get_caller_file = __commonJS({
|
|
|
2881
2881
|
var require_require_directory = __commonJS({
|
|
2882
2882
|
"../../node_modules/.pnpm/require-directory@2.1.1/node_modules/require-directory/index.js"(exports2, module2) {
|
|
2883
2883
|
"use strict";
|
|
2884
|
-
var
|
|
2884
|
+
var fs3 = require("fs");
|
|
2885
2885
|
var join = require("path").join;
|
|
2886
2886
|
var resolve7 = require("path").resolve;
|
|
2887
2887
|
var dirname3 = require("path").dirname;
|
|
@@ -2918,9 +2918,9 @@ var require_require_directory = __commonJS({
|
|
|
2918
2918
|
}
|
|
2919
2919
|
}
|
|
2920
2920
|
path4 = !path4 ? dirname3(m.filename) : resolve7(dirname3(m.filename), path4);
|
|
2921
|
-
|
|
2921
|
+
fs3.readdirSync(path4).forEach(function(filename) {
|
|
2922
2922
|
var joined = join(path4, filename), files, key, obj;
|
|
2923
|
-
if (
|
|
2923
|
+
if (fs3.statSync(joined).isDirectory() && options.recurse) {
|
|
2924
2924
|
files = requireDirectory(m, joined, options);
|
|
2925
2925
|
if (Object.keys(files).length) {
|
|
2926
2926
|
retval[options.rename(filename, joined, filename)] = files;
|
|
@@ -4562,11 +4562,11 @@ ${t5.join("\n")}` : "";
|
|
|
4562
4562
|
var require_tmp = __commonJS({
|
|
4563
4563
|
"../../node_modules/.pnpm/tmp@0.2.3/node_modules/tmp/lib/tmp.js"(exports2, module2) {
|
|
4564
4564
|
"use strict";
|
|
4565
|
-
var
|
|
4565
|
+
var fs3 = require("fs");
|
|
4566
4566
|
var os = require("os");
|
|
4567
4567
|
var path4 = require("path");
|
|
4568
4568
|
var crypto = require("crypto");
|
|
4569
|
-
var _c2 = { fs:
|
|
4569
|
+
var _c2 = { fs: fs3.constants, os: os.constants };
|
|
4570
4570
|
var RANDOM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
4571
4571
|
var TEMPLATE_PATTERN = /XXXXXX/;
|
|
4572
4572
|
var DEFAULT_TRIES = 3;
|
|
@@ -4578,13 +4578,13 @@ var require_tmp = __commonJS({
|
|
|
4578
4578
|
var FILE_MODE = 384;
|
|
4579
4579
|
var EXIT = "exit";
|
|
4580
4580
|
var _removeObjects = [];
|
|
4581
|
-
var FN_RMDIR_SYNC =
|
|
4581
|
+
var FN_RMDIR_SYNC = fs3.rmdirSync.bind(fs3);
|
|
4582
4582
|
var _gracefulCleanup = false;
|
|
4583
4583
|
function rimraf(dirPath, callback) {
|
|
4584
|
-
return
|
|
4584
|
+
return fs3.rm(dirPath, { recursive: true }, callback);
|
|
4585
4585
|
}
|
|
4586
4586
|
function FN_RIMRAF_SYNC(dirPath) {
|
|
4587
|
-
return
|
|
4587
|
+
return fs3.rmSync(dirPath, { recursive: true });
|
|
4588
4588
|
}
|
|
4589
4589
|
function tmpName(options, callback) {
|
|
4590
4590
|
const args = _parseArguments(options, callback), opts = args[0], cb = args[1];
|
|
@@ -4597,7 +4597,7 @@ var require_tmp = __commonJS({
|
|
|
4597
4597
|
(function _getUniqueName() {
|
|
4598
4598
|
try {
|
|
4599
4599
|
const name = _generateTmpName(opts);
|
|
4600
|
-
|
|
4600
|
+
fs3.stat(name, function(err) {
|
|
4601
4601
|
if (!err) {
|
|
4602
4602
|
if (tries-- > 0) return _getUniqueName();
|
|
4603
4603
|
return cb(new Error("Could not get a unique tmp filename, max tries reached " + name));
|
|
@@ -4616,7 +4616,7 @@ var require_tmp = __commonJS({
|
|
|
4616
4616
|
do {
|
|
4617
4617
|
const name = _generateTmpName(opts);
|
|
4618
4618
|
try {
|
|
4619
|
-
|
|
4619
|
+
fs3.statSync(name);
|
|
4620
4620
|
} catch (e) {
|
|
4621
4621
|
return name;
|
|
4622
4622
|
}
|
|
@@ -4627,10 +4627,10 @@ var require_tmp = __commonJS({
|
|
|
4627
4627
|
const args = _parseArguments(options, callback), opts = args[0], cb = args[1];
|
|
4628
4628
|
tmpName(opts, function _tmpNameCreated(err, name) {
|
|
4629
4629
|
if (err) return cb(err);
|
|
4630
|
-
|
|
4630
|
+
fs3.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err2, fd) {
|
|
4631
4631
|
if (err2) return cb(err2);
|
|
4632
4632
|
if (opts.discardDescriptor) {
|
|
4633
|
-
return
|
|
4633
|
+
return fs3.close(fd, function _discardCallback(possibleErr) {
|
|
4634
4634
|
return cb(possibleErr, name, void 0, _prepareTmpFileRemoveCallback(name, -1, opts, false));
|
|
4635
4635
|
});
|
|
4636
4636
|
} else {
|
|
@@ -4644,9 +4644,9 @@ var require_tmp = __commonJS({
|
|
|
4644
4644
|
const args = _parseArguments(options), opts = args[0];
|
|
4645
4645
|
const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;
|
|
4646
4646
|
const name = tmpNameSync(opts);
|
|
4647
|
-
var fd =
|
|
4647
|
+
var fd = fs3.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
|
|
4648
4648
|
if (opts.discardDescriptor) {
|
|
4649
|
-
|
|
4649
|
+
fs3.closeSync(fd);
|
|
4650
4650
|
fd = void 0;
|
|
4651
4651
|
}
|
|
4652
4652
|
return {
|
|
@@ -4659,7 +4659,7 @@ var require_tmp = __commonJS({
|
|
|
4659
4659
|
const args = _parseArguments(options, callback), opts = args[0], cb = args[1];
|
|
4660
4660
|
tmpName(opts, function _tmpNameCreated(err, name) {
|
|
4661
4661
|
if (err) return cb(err);
|
|
4662
|
-
|
|
4662
|
+
fs3.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err2) {
|
|
4663
4663
|
if (err2) return cb(err2);
|
|
4664
4664
|
cb(null, name, _prepareTmpDirRemoveCallback(name, opts, false));
|
|
4665
4665
|
});
|
|
@@ -4668,7 +4668,7 @@ var require_tmp = __commonJS({
|
|
|
4668
4668
|
function dirSync(options) {
|
|
4669
4669
|
const args = _parseArguments(options), opts = args[0];
|
|
4670
4670
|
const name = tmpNameSync(opts);
|
|
4671
|
-
|
|
4671
|
+
fs3.mkdirSync(name, opts.mode || DIR_MODE);
|
|
4672
4672
|
return {
|
|
4673
4673
|
name,
|
|
4674
4674
|
removeCallback: _prepareTmpDirRemoveCallback(name, opts, true)
|
|
@@ -4682,20 +4682,20 @@ var require_tmp = __commonJS({
|
|
|
4682
4682
|
next();
|
|
4683
4683
|
};
|
|
4684
4684
|
if (0 <= fdPath[0])
|
|
4685
|
-
|
|
4686
|
-
|
|
4685
|
+
fs3.close(fdPath[0], function() {
|
|
4686
|
+
fs3.unlink(fdPath[1], _handler);
|
|
4687
4687
|
});
|
|
4688
|
-
else
|
|
4688
|
+
else fs3.unlink(fdPath[1], _handler);
|
|
4689
4689
|
}
|
|
4690
4690
|
function _removeFileSync(fdPath) {
|
|
4691
4691
|
let rethrownException = null;
|
|
4692
4692
|
try {
|
|
4693
|
-
if (0 <= fdPath[0])
|
|
4693
|
+
if (0 <= fdPath[0]) fs3.closeSync(fdPath[0]);
|
|
4694
4694
|
} catch (e) {
|
|
4695
4695
|
if (!_isEBADF(e) && !_isENOENT(e)) throw e;
|
|
4696
4696
|
} finally {
|
|
4697
4697
|
try {
|
|
4698
|
-
|
|
4698
|
+
fs3.unlinkSync(fdPath[1]);
|
|
4699
4699
|
} catch (e) {
|
|
4700
4700
|
if (!_isENOENT(e)) rethrownException = e;
|
|
4701
4701
|
}
|
|
@@ -4711,7 +4711,7 @@ var require_tmp = __commonJS({
|
|
|
4711
4711
|
return sync ? removeCallbackSync : removeCallback;
|
|
4712
4712
|
}
|
|
4713
4713
|
function _prepareTmpDirRemoveCallback(name, opts, sync) {
|
|
4714
|
-
const removeFunction = opts.unsafeCleanup ? rimraf :
|
|
4714
|
+
const removeFunction = opts.unsafeCleanup ? rimraf : fs3.rmdir.bind(fs3);
|
|
4715
4715
|
const removeFunctionSync = opts.unsafeCleanup ? FN_RIMRAF_SYNC : FN_RMDIR_SYNC;
|
|
4716
4716
|
const removeCallbackSync = _prepareRemoveCallback(removeFunctionSync, name, sync);
|
|
4717
4717
|
const removeCallback = _prepareRemoveCallback(removeFunction, name, sync, removeCallbackSync);
|
|
@@ -6417,7 +6417,7 @@ var require_dist2 = __commonJS({
|
|
|
6417
6417
|
});
|
|
6418
6418
|
|
|
6419
6419
|
// src/cli.ts
|
|
6420
|
-
var
|
|
6420
|
+
var import_fs6 = __toESM(require("fs"), 1);
|
|
6421
6421
|
var import_promises6 = require("fs/promises");
|
|
6422
6422
|
var import_path7 = __toESM(require("path"), 1);
|
|
6423
6423
|
|
|
@@ -12987,6 +12987,15 @@ var LanguageInfo = {
|
|
|
12987
12987
|
}
|
|
12988
12988
|
};
|
|
12989
12989
|
},
|
|
12990
|
+
rust: (value) => {
|
|
12991
|
+
return {
|
|
12992
|
+
...value,
|
|
12993
|
+
type: "rust",
|
|
12994
|
+
_visit: function(visitor) {
|
|
12995
|
+
return LanguageInfo._visit(this, visitor);
|
|
12996
|
+
}
|
|
12997
|
+
};
|
|
12998
|
+
},
|
|
12990
12999
|
_visit: (value, visitor) => {
|
|
12991
13000
|
switch (value.type) {
|
|
12992
13001
|
case "typescript":
|
|
@@ -13003,6 +13012,8 @@ var LanguageInfo = {
|
|
|
13003
13012
|
return visitor.csharp(value);
|
|
13004
13013
|
case "php":
|
|
13005
13014
|
return visitor.php(value);
|
|
13015
|
+
case "rust":
|
|
13016
|
+
return visitor.rust(value);
|
|
13006
13017
|
default:
|
|
13007
13018
|
return visitor._other(value);
|
|
13008
13019
|
}
|
|
@@ -13024,6 +13035,7 @@ var Language = {
|
|
|
13024
13035
|
Csharp: "CSHARP",
|
|
13025
13036
|
Typescript: "TYPESCRIPT",
|
|
13026
13037
|
Php: "PHP",
|
|
13038
|
+
Rust: "RUST",
|
|
13027
13039
|
_visit: (value, visitor) => {
|
|
13028
13040
|
switch (value) {
|
|
13029
13041
|
case Language.Java:
|
|
@@ -13040,6 +13052,8 @@ var Language = {
|
|
|
13040
13052
|
return visitor.typescript();
|
|
13041
13053
|
case Language.Php:
|
|
13042
13054
|
return visitor.php();
|
|
13055
|
+
case Language.Rust:
|
|
13056
|
+
return visitor.rust();
|
|
13043
13057
|
default:
|
|
13044
13058
|
return visitor._other();
|
|
13045
13059
|
}
|
|
@@ -13047,17 +13061,18 @@ var Language = {
|
|
|
13047
13061
|
};
|
|
13048
13062
|
|
|
13049
13063
|
// src/utils/Writer.ts
|
|
13064
|
+
var import_fs5 = __toESM(require("fs"), 1);
|
|
13050
13065
|
var Writer = class {
|
|
13051
|
-
writeCodeBlock(language, content) {
|
|
13052
|
-
this.writeLine(
|
|
13053
|
-
this.write(content);
|
|
13054
|
-
this.writeLine("```");
|
|
13066
|
+
async writeCodeBlock(language, content) {
|
|
13067
|
+
await this.writeLine(`\`\`\`${language}`);
|
|
13068
|
+
await this.write(content);
|
|
13069
|
+
await this.writeLine("```");
|
|
13055
13070
|
}
|
|
13056
|
-
writeLine(content) {
|
|
13071
|
+
async writeLine(content) {
|
|
13057
13072
|
if (content === void 0) {
|
|
13058
|
-
this.write("\n");
|
|
13073
|
+
await this.write("\n");
|
|
13059
13074
|
} else {
|
|
13060
|
-
this.write(`${content}
|
|
13075
|
+
await this.write(`${content}
|
|
13061
13076
|
`);
|
|
13062
13077
|
}
|
|
13063
13078
|
}
|
|
@@ -13068,11 +13083,57 @@ var StreamWriter = class extends Writer {
|
|
|
13068
13083
|
this.stream = stream;
|
|
13069
13084
|
this.stream = stream;
|
|
13070
13085
|
}
|
|
13071
|
-
write(content) {
|
|
13072
|
-
|
|
13086
|
+
async write(content) {
|
|
13087
|
+
return new Promise((resolve7, reject) => {
|
|
13088
|
+
const handleError = (err) => {
|
|
13089
|
+
this.stream.removeListener("error", handleError);
|
|
13090
|
+
reject(err);
|
|
13091
|
+
};
|
|
13092
|
+
if (this.stream instanceof import_fs5.default.WriteStream) {
|
|
13093
|
+
const canWrite = this.stream.write(
|
|
13094
|
+
content,
|
|
13095
|
+
(error) => {
|
|
13096
|
+
this.stream.removeListener("error", handleError);
|
|
13097
|
+
if (error) {
|
|
13098
|
+
reject(error);
|
|
13099
|
+
} else {
|
|
13100
|
+
resolve7();
|
|
13101
|
+
}
|
|
13102
|
+
}
|
|
13103
|
+
);
|
|
13104
|
+
this.stream.once("error", handleError);
|
|
13105
|
+
if (!canWrite) {
|
|
13106
|
+
this.stream.once("drain", resolve7);
|
|
13107
|
+
}
|
|
13108
|
+
} else {
|
|
13109
|
+
const canWrite = this.stream.write(content);
|
|
13110
|
+
this.stream.once("error", handleError);
|
|
13111
|
+
if (!canWrite) {
|
|
13112
|
+
this.stream.once("drain", () => {
|
|
13113
|
+
this.stream.removeListener("error", handleError);
|
|
13114
|
+
resolve7();
|
|
13115
|
+
});
|
|
13116
|
+
} else {
|
|
13117
|
+
this.stream.removeListener("error", handleError);
|
|
13118
|
+
resolve7();
|
|
13119
|
+
}
|
|
13120
|
+
}
|
|
13121
|
+
});
|
|
13073
13122
|
}
|
|
13074
13123
|
end() {
|
|
13075
|
-
|
|
13124
|
+
return new Promise((resolve7, reject) => {
|
|
13125
|
+
if (this.stream instanceof import_fs5.default.WriteStream) {
|
|
13126
|
+
this.stream.end(() => {
|
|
13127
|
+
resolve7();
|
|
13128
|
+
});
|
|
13129
|
+
this.stream.once("error", reject);
|
|
13130
|
+
this.stream.once("finish", resolve7);
|
|
13131
|
+
} else {
|
|
13132
|
+
this.stream.write("", () => {
|
|
13133
|
+
resolve7();
|
|
13134
|
+
});
|
|
13135
|
+
}
|
|
13136
|
+
});
|
|
13076
13137
|
}
|
|
13077
13138
|
};
|
|
13078
13139
|
var StringWriter = class extends Writer {
|
|
@@ -13081,10 +13142,10 @@ var StringWriter = class extends Writer {
|
|
|
13081
13142
|
super();
|
|
13082
13143
|
this.content = "";
|
|
13083
13144
|
}
|
|
13084
|
-
write(content) {
|
|
13145
|
+
async write(content) {
|
|
13085
13146
|
this.content += content;
|
|
13086
13147
|
}
|
|
13087
|
-
end() {
|
|
13148
|
+
async end() {
|
|
13088
13149
|
return;
|
|
13089
13150
|
}
|
|
13090
13151
|
toString() {
|
|
@@ -13100,10 +13161,10 @@ var Block = class {
|
|
|
13100
13161
|
this.id = id;
|
|
13101
13162
|
this.content = content;
|
|
13102
13163
|
}
|
|
13103
|
-
write(writer) {
|
|
13104
|
-
writer.write(this.content);
|
|
13164
|
+
async write(writer) {
|
|
13165
|
+
await writer.write(this.content);
|
|
13105
13166
|
if (!this.content.endsWith("\n")) {
|
|
13106
|
-
writer.writeLine();
|
|
13167
|
+
await writer.writeLine();
|
|
13107
13168
|
}
|
|
13108
13169
|
}
|
|
13109
13170
|
};
|
|
@@ -13198,42 +13259,41 @@ var ReadmeGenerator = class {
|
|
|
13198
13259
|
async generateReadme({
|
|
13199
13260
|
output
|
|
13200
13261
|
}) {
|
|
13201
|
-
const blocks = this.generateBlocks();
|
|
13262
|
+
const blocks = await this.generateBlocks();
|
|
13202
13263
|
const writer = new StreamWriter(output);
|
|
13203
|
-
this.writeHeader({ writer });
|
|
13204
|
-
this.writeBlocks({
|
|
13264
|
+
await this.writeHeader({ writer });
|
|
13265
|
+
await this.writeBlocks({
|
|
13205
13266
|
writer,
|
|
13206
13267
|
blocks: await this.mergeBlocks({ blocks })
|
|
13207
13268
|
});
|
|
13208
|
-
writer.end();
|
|
13209
|
-
return;
|
|
13269
|
+
await writer.end();
|
|
13210
13270
|
}
|
|
13211
|
-
generateBlocks() {
|
|
13271
|
+
async generateBlocks() {
|
|
13212
13272
|
const blocks = [];
|
|
13213
13273
|
if (this.readmeConfig.apiReferenceLink != null) {
|
|
13214
13274
|
blocks.push(
|
|
13215
|
-
this.generateDocumentation({
|
|
13275
|
+
await this.generateDocumentation({
|
|
13216
13276
|
docsLink: this.readmeConfig.apiReferenceLink
|
|
13217
13277
|
})
|
|
13218
13278
|
);
|
|
13219
13279
|
}
|
|
13220
13280
|
if (this.readmeConfig.requirements != null) {
|
|
13221
13281
|
blocks.push(
|
|
13222
|
-
this.generateRequirements({
|
|
13282
|
+
await this.generateRequirements({
|
|
13223
13283
|
requirements: this.readmeConfig.requirements
|
|
13224
13284
|
})
|
|
13225
13285
|
);
|
|
13226
13286
|
}
|
|
13227
13287
|
if (this.readmeConfig.language?.publishInfo != null) {
|
|
13228
13288
|
blocks.push(
|
|
13229
|
-
this.generateInstallation({
|
|
13289
|
+
await this.generateInstallation({
|
|
13230
13290
|
language: this.readmeConfig.language
|
|
13231
13291
|
})
|
|
13232
13292
|
);
|
|
13233
13293
|
}
|
|
13234
13294
|
if (this.readmeConfig.referenceMarkdownPath != null) {
|
|
13235
13295
|
blocks.push(
|
|
13236
|
-
this.generateReference({
|
|
13296
|
+
await this.generateReference({
|
|
13237
13297
|
referenceFile: this.readmeConfig.referenceMarkdownPath
|
|
13238
13298
|
})
|
|
13239
13299
|
);
|
|
@@ -13245,12 +13305,12 @@ var ReadmeGenerator = class {
|
|
|
13245
13305
|
continue;
|
|
13246
13306
|
}
|
|
13247
13307
|
blocks.push(
|
|
13248
|
-
this.generateFeatureBlock({
|
|
13308
|
+
await this.generateFeatureBlock({
|
|
13249
13309
|
feature
|
|
13250
13310
|
})
|
|
13251
13311
|
);
|
|
13252
13312
|
}
|
|
13253
|
-
const advancedFeatureBlock = this.generateNestedFeatureBlock({
|
|
13313
|
+
const advancedFeatureBlock = await this.generateNestedFeatureBlock({
|
|
13254
13314
|
featureId: this.ADVANCED_FEATURE_ID,
|
|
13255
13315
|
features: advancedFeatures
|
|
13256
13316
|
});
|
|
@@ -13266,7 +13326,7 @@ var ReadmeGenerator = class {
|
|
|
13266
13326
|
}
|
|
13267
13327
|
return feat.advanced ?? false;
|
|
13268
13328
|
}
|
|
13269
|
-
generateNestedFeatureBlock({
|
|
13329
|
+
async generateNestedFeatureBlock({
|
|
13270
13330
|
featureId,
|
|
13271
13331
|
features
|
|
13272
13332
|
}) {
|
|
@@ -13274,13 +13334,13 @@ var ReadmeGenerator = class {
|
|
|
13274
13334
|
return void 0;
|
|
13275
13335
|
}
|
|
13276
13336
|
const writer = new StringWriter();
|
|
13277
|
-
writer.writeLine(`## ${featureIDToTitle(featureId)}`);
|
|
13278
|
-
writer.writeLine();
|
|
13337
|
+
await writer.writeLine(`## ${featureIDToTitle(featureId)}`);
|
|
13338
|
+
await writer.writeLine();
|
|
13279
13339
|
for (const feature of features) {
|
|
13280
13340
|
if (this.shouldSkipFeature({ feature })) {
|
|
13281
13341
|
continue;
|
|
13282
13342
|
}
|
|
13283
|
-
this.generateFeatureBlock({
|
|
13343
|
+
await this.generateFeatureBlock({
|
|
13284
13344
|
feature,
|
|
13285
13345
|
heading: "###",
|
|
13286
13346
|
maybeWriter: writer
|
|
@@ -13291,27 +13351,27 @@ var ReadmeGenerator = class {
|
|
|
13291
13351
|
content: writer.toString()
|
|
13292
13352
|
});
|
|
13293
13353
|
}
|
|
13294
|
-
generateFeatureBlock({
|
|
13354
|
+
async generateFeatureBlock({
|
|
13295
13355
|
feature,
|
|
13296
13356
|
heading = "##",
|
|
13297
13357
|
maybeWriter
|
|
13298
13358
|
}) {
|
|
13299
13359
|
const writer = maybeWriter ?? new StringWriter();
|
|
13300
|
-
writer.writeLine(`${heading} ${featureIDToTitle(feature.id)}`);
|
|
13301
|
-
writer.writeLine();
|
|
13360
|
+
await writer.writeLine(`${heading} ${featureIDToTitle(feature.id)}`);
|
|
13361
|
+
await writer.writeLine();
|
|
13302
13362
|
if (feature.description != null) {
|
|
13303
|
-
writer.writeLine(feature.description);
|
|
13363
|
+
await writer.writeLine(feature.description);
|
|
13304
13364
|
}
|
|
13305
|
-
feature.snippets?.
|
|
13365
|
+
for (const [index, snippet] of feature.snippets?.entries() ?? []) {
|
|
13306
13366
|
if (index > 0) {
|
|
13307
|
-
writer.writeLine();
|
|
13367
|
+
await writer.writeLine();
|
|
13308
13368
|
}
|
|
13309
|
-
writer.writeCodeBlock(this.readmeConfig.language.type, snippet);
|
|
13310
|
-
}
|
|
13369
|
+
await writer.writeCodeBlock(this.readmeConfig.language.type, snippet);
|
|
13370
|
+
}
|
|
13311
13371
|
if (feature.addendum != null) {
|
|
13312
|
-
writer.writeLine(feature.addendum);
|
|
13372
|
+
await writer.writeLine(feature.addendum);
|
|
13313
13373
|
}
|
|
13314
|
-
writer.writeLine();
|
|
13374
|
+
await writer.writeLine();
|
|
13315
13375
|
return new Block({
|
|
13316
13376
|
id: feature.id,
|
|
13317
13377
|
content: writer.toString()
|
|
@@ -13344,154 +13404,162 @@ var ReadmeGenerator = class {
|
|
|
13344
13404
|
}
|
|
13345
13405
|
return void 0;
|
|
13346
13406
|
}
|
|
13347
|
-
writeBlocks({
|
|
13407
|
+
async writeBlocks({
|
|
13348
13408
|
writer,
|
|
13349
13409
|
blocks
|
|
13350
13410
|
}) {
|
|
13351
13411
|
for (const block of blocks) {
|
|
13352
|
-
block.write(writer);
|
|
13412
|
+
await block.write(writer);
|
|
13353
13413
|
}
|
|
13354
13414
|
}
|
|
13355
|
-
writeHeader({ writer }) {
|
|
13356
|
-
writer.writeLine(
|
|
13415
|
+
async writeHeader({ writer }) {
|
|
13416
|
+
await writer.writeLine(
|
|
13357
13417
|
`# ${this.organizationPascalCase} ${this.languageTitle} Library`
|
|
13358
13418
|
);
|
|
13359
|
-
writer.writeLine();
|
|
13419
|
+
await writer.writeLine();
|
|
13360
13420
|
if (this.readmeConfig.bannerLink != null) {
|
|
13361
|
-
this.writeBanner({
|
|
13421
|
+
await this.writeBanner({
|
|
13362
13422
|
writer,
|
|
13363
13423
|
bannerLink: this.readmeConfig.bannerLink
|
|
13364
13424
|
});
|
|
13365
13425
|
}
|
|
13366
|
-
this.writeFernShield({ writer });
|
|
13426
|
+
await this.writeFernShield({ writer });
|
|
13367
13427
|
if (this.readmeConfig.language != null) {
|
|
13368
|
-
this.writeShield({
|
|
13428
|
+
await this.writeShield({
|
|
13369
13429
|
writer,
|
|
13370
13430
|
language: this.readmeConfig.language
|
|
13371
13431
|
});
|
|
13372
13432
|
}
|
|
13373
|
-
writer.writeLine();
|
|
13374
|
-
this.
|
|
13433
|
+
await writer.writeLine();
|
|
13434
|
+
await this.writeIntro({ writer });
|
|
13375
13435
|
}
|
|
13376
|
-
writeBanner({
|
|
13436
|
+
async writeBanner({
|
|
13377
13437
|
writer,
|
|
13378
13438
|
bannerLink
|
|
13379
13439
|
}) {
|
|
13380
|
-
writer.writeLine(``);
|
|
13381
|
-
writer.writeLine();
|
|
13440
|
+
await writer.writeLine(``);
|
|
13441
|
+
await writer.writeLine();
|
|
13382
13442
|
}
|
|
13383
|
-
writeFernShield({ writer }) {
|
|
13443
|
+
async writeFernShield({ writer }) {
|
|
13384
13444
|
const repoSource = this.readmeConfig.remote?.repoUrl ?? `${this.organizationPascalCase}/${this.languageTitle}`;
|
|
13385
|
-
writer.writeLine(
|
|
13445
|
+
await writer.writeLine(
|
|
13386
13446
|
`[](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=${encodeURIComponent(repoSource)})`
|
|
13387
13447
|
);
|
|
13388
13448
|
}
|
|
13389
|
-
|
|
13390
|
-
writer.writeLine(
|
|
13449
|
+
async writeIntro({ writer }) {
|
|
13450
|
+
await writer.writeLine(
|
|
13391
13451
|
this.readmeConfig.introduction != null ? this.readmeConfig.introduction : `The ${this.organizationPascalCase} ${this.languageTitle} library provides convenient access to the ${this.organizationPascalCase} API from ${this.languageTitle}.`
|
|
13392
13452
|
);
|
|
13393
|
-
writer.writeLine();
|
|
13453
|
+
await writer.writeLine();
|
|
13394
13454
|
}
|
|
13395
|
-
generateDocumentation({
|
|
13455
|
+
async generateDocumentation({
|
|
13456
|
+
docsLink
|
|
13457
|
+
}) {
|
|
13396
13458
|
const writer = new StringWriter();
|
|
13397
|
-
writer.writeLine("## Documentation");
|
|
13398
|
-
writer.writeLine();
|
|
13399
|
-
writer.writeLine(
|
|
13459
|
+
await writer.writeLine("## Documentation");
|
|
13460
|
+
await writer.writeLine();
|
|
13461
|
+
await writer.writeLine(
|
|
13400
13462
|
`API reference documentation is available [here](${docsLink}).`
|
|
13401
13463
|
);
|
|
13402
|
-
writer.writeLine();
|
|
13464
|
+
await writer.writeLine();
|
|
13403
13465
|
return new Block({
|
|
13404
13466
|
id: "DOCUMENTATION",
|
|
13405
13467
|
content: writer.toString()
|
|
13406
13468
|
});
|
|
13407
13469
|
}
|
|
13408
|
-
generateReference({
|
|
13470
|
+
async generateReference({
|
|
13409
13471
|
referenceFile
|
|
13410
13472
|
}) {
|
|
13411
13473
|
const writer = new StringWriter();
|
|
13412
|
-
writer.writeLine("## Reference");
|
|
13413
|
-
writer.writeLine();
|
|
13414
|
-
writer.writeLine(
|
|
13474
|
+
await writer.writeLine("## Reference");
|
|
13475
|
+
await writer.writeLine();
|
|
13476
|
+
await writer.writeLine(
|
|
13415
13477
|
`A full reference for this library is available [here](${this.readmeConfig.remote?.repoUrl != null ? `${this.readmeConfig.remote.repoUrl}/blob/HEAD/${referenceFile}` : referenceFile}).`
|
|
13416
13478
|
);
|
|
13417
|
-
writer.writeLine();
|
|
13479
|
+
await writer.writeLine();
|
|
13418
13480
|
return new Block({
|
|
13419
13481
|
id: "REFERENCE",
|
|
13420
13482
|
content: writer.toString()
|
|
13421
13483
|
});
|
|
13422
13484
|
}
|
|
13423
|
-
generateRequirements({
|
|
13485
|
+
async generateRequirements({
|
|
13424
13486
|
requirements
|
|
13425
13487
|
}) {
|
|
13426
13488
|
const writer = new StringWriter();
|
|
13427
|
-
writer.writeLine("## Requirements");
|
|
13428
|
-
writer.writeLine();
|
|
13489
|
+
await writer.writeLine("## Requirements");
|
|
13490
|
+
await writer.writeLine();
|
|
13429
13491
|
if (requirements.length === 1) {
|
|
13430
|
-
writer.writeLine(`This SDK requires ${requirements[0]}.`);
|
|
13492
|
+
await writer.writeLine(`This SDK requires ${requirements[0]}.`);
|
|
13431
13493
|
} else {
|
|
13432
|
-
writer.writeLine("This SDK requires:");
|
|
13494
|
+
await writer.writeLine("This SDK requires:");
|
|
13433
13495
|
for (const requirement of requirements) {
|
|
13434
|
-
writer.writeLine(`- ${requirement}`);
|
|
13496
|
+
await writer.writeLine(`- ${requirement}`);
|
|
13435
13497
|
}
|
|
13436
13498
|
}
|
|
13437
|
-
writer.writeLine();
|
|
13499
|
+
await writer.writeLine();
|
|
13438
13500
|
return new Block({
|
|
13439
13501
|
id: "REQUIREMENTS",
|
|
13440
13502
|
content: writer.toString()
|
|
13441
13503
|
});
|
|
13442
13504
|
}
|
|
13443
|
-
generateInstallation({
|
|
13505
|
+
async generateInstallation({
|
|
13444
13506
|
language
|
|
13445
13507
|
}) {
|
|
13446
13508
|
if (language.publishInfo == null) {
|
|
13447
13509
|
throw new Error("publish information is required for installation block");
|
|
13448
13510
|
}
|
|
13449
13511
|
const writer = new StringWriter();
|
|
13450
|
-
writer.writeLine("## Installation");
|
|
13451
|
-
writer.writeLine();
|
|
13512
|
+
await writer.writeLine("## Installation");
|
|
13513
|
+
await writer.writeLine();
|
|
13452
13514
|
switch (language.type) {
|
|
13453
13515
|
case "typescript":
|
|
13454
|
-
this.writeInstallationForNPM({
|
|
13516
|
+
await this.writeInstallationForNPM({
|
|
13455
13517
|
writer,
|
|
13456
13518
|
npm: language.publishInfo
|
|
13457
13519
|
});
|
|
13458
13520
|
break;
|
|
13459
13521
|
case "python":
|
|
13460
|
-
this.writeInstallationForPyPi({
|
|
13522
|
+
await this.writeInstallationForPyPi({
|
|
13461
13523
|
writer,
|
|
13462
13524
|
pypi: language.publishInfo
|
|
13463
13525
|
});
|
|
13464
13526
|
break;
|
|
13465
13527
|
case "java":
|
|
13466
|
-
this.writeInstallationForMaven({
|
|
13528
|
+
await this.writeInstallationForMaven({
|
|
13467
13529
|
writer,
|
|
13468
13530
|
maven: language.publishInfo
|
|
13469
13531
|
});
|
|
13470
13532
|
break;
|
|
13471
13533
|
case "go":
|
|
13472
|
-
this.writeInstallationForGo({
|
|
13534
|
+
await this.writeInstallationForGo({
|
|
13473
13535
|
writer,
|
|
13474
13536
|
go: language.publishInfo
|
|
13475
13537
|
});
|
|
13476
13538
|
break;
|
|
13477
13539
|
case "ruby":
|
|
13478
|
-
this.writeInstallationForRubyGems({
|
|
13540
|
+
await this.writeInstallationForRubyGems({
|
|
13479
13541
|
writer,
|
|
13480
13542
|
rubyGems: language.publishInfo
|
|
13481
13543
|
});
|
|
13482
13544
|
break;
|
|
13483
13545
|
case "csharp":
|
|
13484
|
-
this.writeInstallationForNuget({
|
|
13546
|
+
await this.writeInstallationForNuget({
|
|
13485
13547
|
writer,
|
|
13486
13548
|
nuget: language.publishInfo
|
|
13487
13549
|
});
|
|
13488
13550
|
break;
|
|
13489
13551
|
case "php":
|
|
13490
|
-
this.writeInstallationForComposer({
|
|
13552
|
+
await this.writeInstallationForComposer({
|
|
13491
13553
|
writer,
|
|
13492
13554
|
composer: language.publishInfo
|
|
13493
13555
|
});
|
|
13494
13556
|
break;
|
|
13557
|
+
case "rust":
|
|
13558
|
+
await this.writeInstallationForCargo({
|
|
13559
|
+
writer,
|
|
13560
|
+
cargo: language.publishInfo
|
|
13561
|
+
});
|
|
13562
|
+
break;
|
|
13495
13563
|
default:
|
|
13496
13564
|
assertNever(language);
|
|
13497
13565
|
}
|
|
@@ -13500,93 +13568,120 @@ var ReadmeGenerator = class {
|
|
|
13500
13568
|
content: writer.toString()
|
|
13501
13569
|
});
|
|
13502
13570
|
}
|
|
13503
|
-
writeInstallationForNPM({
|
|
13571
|
+
async writeInstallationForNPM({
|
|
13504
13572
|
writer,
|
|
13505
13573
|
npm
|
|
13506
13574
|
}) {
|
|
13507
|
-
writer.writeLine("```sh");
|
|
13508
|
-
writer.writeLine(`npm i -s ${npm.packageName}`);
|
|
13509
|
-
writer.writeLine("```");
|
|
13510
|
-
writer.writeLine();
|
|
13575
|
+
await writer.writeLine("```sh");
|
|
13576
|
+
await writer.writeLine(`npm i -s ${npm.packageName}`);
|
|
13577
|
+
await writer.writeLine("```");
|
|
13578
|
+
await writer.writeLine();
|
|
13511
13579
|
}
|
|
13512
|
-
writeInstallationForPyPi({
|
|
13580
|
+
async writeInstallationForPyPi({
|
|
13513
13581
|
writer,
|
|
13514
13582
|
pypi
|
|
13515
13583
|
}) {
|
|
13516
|
-
writer.writeLine("```sh");
|
|
13517
|
-
writer.writeLine(`pip install ${pypi.packageName}`);
|
|
13518
|
-
writer.writeLine("```");
|
|
13519
|
-
writer.writeLine();
|
|
13584
|
+
await writer.writeLine("```sh");
|
|
13585
|
+
await writer.writeLine(`pip install ${pypi.packageName}`);
|
|
13586
|
+
await writer.writeLine("```");
|
|
13587
|
+
await writer.writeLine();
|
|
13520
13588
|
}
|
|
13521
|
-
writeInstallationForMaven({
|
|
13589
|
+
async writeInstallationForMaven({
|
|
13522
13590
|
writer,
|
|
13523
13591
|
maven
|
|
13524
13592
|
}) {
|
|
13525
|
-
writer.writeLine("### Gradle");
|
|
13526
|
-
writer.writeLine();
|
|
13527
|
-
writer.writeLine("Add the dependency in your `build.gradle` file:");
|
|
13528
|
-
writer.writeLine();
|
|
13529
|
-
writer.writeLine("```groovy");
|
|
13530
|
-
writer.writeLine("dependencies {");
|
|
13531
|
-
writer.writeLine(
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
writer.writeLine();
|
|
13535
|
-
writer.writeLine("
|
|
13536
|
-
writer.writeLine();
|
|
13537
|
-
writer.writeLine("
|
|
13538
|
-
writer.writeLine();
|
|
13539
|
-
writer.writeLine("
|
|
13540
|
-
writer.writeLine(
|
|
13541
|
-
writer.writeLine(
|
|
13542
|
-
writer.writeLine(
|
|
13543
|
-
writer.writeLine(` <
|
|
13544
|
-
writer.writeLine(
|
|
13545
|
-
writer.writeLine(
|
|
13546
|
-
writer.writeLine();
|
|
13547
|
-
|
|
13548
|
-
|
|
13593
|
+
await writer.writeLine("### Gradle");
|
|
13594
|
+
await writer.writeLine();
|
|
13595
|
+
await writer.writeLine("Add the dependency in your `build.gradle` file:");
|
|
13596
|
+
await writer.writeLine();
|
|
13597
|
+
await writer.writeLine("```groovy");
|
|
13598
|
+
await writer.writeLine("dependencies {");
|
|
13599
|
+
await writer.writeLine(
|
|
13600
|
+
` implementation '${maven.group}:${maven.artifact}'`
|
|
13601
|
+
);
|
|
13602
|
+
await writer.writeLine("}");
|
|
13603
|
+
await writer.writeLine("```");
|
|
13604
|
+
await writer.writeLine();
|
|
13605
|
+
await writer.writeLine("### Maven");
|
|
13606
|
+
await writer.writeLine();
|
|
13607
|
+
await writer.writeLine("Add the dependency in your `pom.xml` file:");
|
|
13608
|
+
await writer.writeLine();
|
|
13609
|
+
await writer.writeLine("```xml");
|
|
13610
|
+
await writer.writeLine("<dependency>");
|
|
13611
|
+
await writer.writeLine(` <groupId>${maven.group}</groupId>`);
|
|
13612
|
+
await writer.writeLine(` <artifactId>${maven.artifact}</artifactId>`);
|
|
13613
|
+
await writer.writeLine(` <version>${maven.version}</version>`);
|
|
13614
|
+
await writer.writeLine("</dependency>");
|
|
13615
|
+
await writer.writeLine("```");
|
|
13616
|
+
await writer.writeLine();
|
|
13617
|
+
}
|
|
13618
|
+
async writeInstallationForGo({
|
|
13549
13619
|
writer,
|
|
13550
13620
|
go
|
|
13551
13621
|
}) {
|
|
13552
|
-
writer.writeLine("```sh");
|
|
13553
|
-
writer.write(`go get github.com/${go.owner}/${go.repo}`);
|
|
13622
|
+
await writer.writeLine("```sh");
|
|
13623
|
+
await writer.write(`go get github.com/${go.owner}/${go.repo}`);
|
|
13554
13624
|
const majorVersion = getMajorVersion(go.version);
|
|
13555
13625
|
if (!majorVersion.startsWith("0") && !majorVersion.startsWith("1")) {
|
|
13556
|
-
writer.write(`/v${majorVersion}`);
|
|
13626
|
+
await writer.write(`/v${majorVersion}`);
|
|
13557
13627
|
}
|
|
13558
|
-
writer.writeLine();
|
|
13559
|
-
writer.writeLine("```");
|
|
13560
|
-
writer.writeLine();
|
|
13628
|
+
await writer.writeLine();
|
|
13629
|
+
await writer.writeLine("```");
|
|
13630
|
+
await writer.writeLine();
|
|
13561
13631
|
}
|
|
13562
|
-
writeInstallationForRubyGems({
|
|
13632
|
+
async writeInstallationForRubyGems({
|
|
13563
13633
|
writer,
|
|
13564
13634
|
rubyGems
|
|
13565
13635
|
}) {
|
|
13566
|
-
writer.writeLine("```sh");
|
|
13567
|
-
writer.writeLine(`gem install ${rubyGems.packageName}`);
|
|
13568
|
-
writer.writeLine("```");
|
|
13569
|
-
writer.writeLine();
|
|
13636
|
+
await writer.writeLine("```sh");
|
|
13637
|
+
await writer.writeLine(`gem install ${rubyGems.packageName}`);
|
|
13638
|
+
await writer.writeLine("```");
|
|
13639
|
+
await writer.writeLine();
|
|
13570
13640
|
}
|
|
13571
|
-
writeInstallationForNuget({
|
|
13641
|
+
async writeInstallationForNuget({
|
|
13572
13642
|
writer,
|
|
13573
13643
|
nuget
|
|
13574
13644
|
}) {
|
|
13575
|
-
writer.writeLine("```sh");
|
|
13576
|
-
writer.writeLine(`dotnet add package ${nuget.packageName}`);
|
|
13577
|
-
writer.writeLine("```");
|
|
13578
|
-
writer.writeLine();
|
|
13645
|
+
await writer.writeLine("```sh");
|
|
13646
|
+
await writer.writeLine(`dotnet add package ${nuget.packageName}`);
|
|
13647
|
+
await writer.writeLine("```");
|
|
13648
|
+
await writer.writeLine();
|
|
13579
13649
|
}
|
|
13580
|
-
writeInstallationForComposer({
|
|
13650
|
+
async writeInstallationForComposer({
|
|
13581
13651
|
writer,
|
|
13582
13652
|
composer
|
|
13583
13653
|
}) {
|
|
13584
|
-
writer.writeLine("```sh");
|
|
13585
|
-
writer.writeLine(`composer require ${composer.packageName}`);
|
|
13586
|
-
writer.writeLine("```");
|
|
13587
|
-
writer.writeLine();
|
|
13654
|
+
await writer.writeLine("```sh");
|
|
13655
|
+
await writer.writeLine(`composer require ${composer.packageName}`);
|
|
13656
|
+
await writer.writeLine("```");
|
|
13657
|
+
await writer.writeLine();
|
|
13588
13658
|
}
|
|
13589
|
-
|
|
13659
|
+
async writeInstallationForCargo({
|
|
13660
|
+
writer,
|
|
13661
|
+
cargo
|
|
13662
|
+
}) {
|
|
13663
|
+
await writer.writeLine("Add this to your `Cargo.toml`:");
|
|
13664
|
+
await writer.writeLine();
|
|
13665
|
+
await writer.writeLine("```toml");
|
|
13666
|
+
await writer.writeLine("[dependencies]");
|
|
13667
|
+
await writer.writeLine(
|
|
13668
|
+
`${this.getCrateNameFromPackageName(cargo.packageName)} = "${cargo.version}"`
|
|
13669
|
+
);
|
|
13670
|
+
await writer.writeLine("```");
|
|
13671
|
+
await writer.writeLine();
|
|
13672
|
+
await writer.writeLine("Or install via cargo:");
|
|
13673
|
+
await writer.writeLine();
|
|
13674
|
+
await writer.writeLine("```sh");
|
|
13675
|
+
await writer.writeLine(
|
|
13676
|
+
`cargo add ${this.getCrateNameFromPackageName(cargo.packageName)}`
|
|
13677
|
+
);
|
|
13678
|
+
await writer.writeLine("```");
|
|
13679
|
+
await writer.writeLine();
|
|
13680
|
+
}
|
|
13681
|
+
getCrateNameFromPackageName(packageName) {
|
|
13682
|
+
return packageName.includes("/") ? packageName.split("/").pop() ?? packageName : packageName;
|
|
13683
|
+
}
|
|
13684
|
+
async writeShield({
|
|
13590
13685
|
writer,
|
|
13591
13686
|
language
|
|
13592
13687
|
}) {
|
|
@@ -13596,7 +13691,7 @@ var ReadmeGenerator = class {
|
|
|
13596
13691
|
if (npm == null) {
|
|
13597
13692
|
return;
|
|
13598
13693
|
}
|
|
13599
|
-
this.writeShieldForNPM({
|
|
13694
|
+
await this.writeShieldForNPM({
|
|
13600
13695
|
writer,
|
|
13601
13696
|
npm
|
|
13602
13697
|
});
|
|
@@ -13607,7 +13702,7 @@ var ReadmeGenerator = class {
|
|
|
13607
13702
|
if (pypi == null) {
|
|
13608
13703
|
return;
|
|
13609
13704
|
}
|
|
13610
|
-
this.writeShieldForPyPi({
|
|
13705
|
+
await this.writeShieldForPyPi({
|
|
13611
13706
|
writer,
|
|
13612
13707
|
pypi
|
|
13613
13708
|
});
|
|
@@ -13618,7 +13713,7 @@ var ReadmeGenerator = class {
|
|
|
13618
13713
|
if (maven == null) {
|
|
13619
13714
|
return;
|
|
13620
13715
|
}
|
|
13621
|
-
this.writeShieldForMaven({
|
|
13716
|
+
await this.writeShieldForMaven({
|
|
13622
13717
|
writer,
|
|
13623
13718
|
maven
|
|
13624
13719
|
});
|
|
@@ -13629,7 +13724,7 @@ var ReadmeGenerator = class {
|
|
|
13629
13724
|
if (go == null) {
|
|
13630
13725
|
return;
|
|
13631
13726
|
}
|
|
13632
|
-
this.writeShieldForGo({
|
|
13727
|
+
await this.writeShieldForGo({
|
|
13633
13728
|
writer,
|
|
13634
13729
|
go
|
|
13635
13730
|
});
|
|
@@ -13640,7 +13735,7 @@ var ReadmeGenerator = class {
|
|
|
13640
13735
|
if (rubyGems == null) {
|
|
13641
13736
|
return;
|
|
13642
13737
|
}
|
|
13643
|
-
this.writeShieldForRubyGems({
|
|
13738
|
+
await this.writeShieldForRubyGems({
|
|
13644
13739
|
writer,
|
|
13645
13740
|
rubyGems
|
|
13646
13741
|
});
|
|
@@ -13651,7 +13746,7 @@ var ReadmeGenerator = class {
|
|
|
13651
13746
|
if (nuget == null) {
|
|
13652
13747
|
return;
|
|
13653
13748
|
}
|
|
13654
|
-
this.writeShieldForNuget({
|
|
13749
|
+
await this.writeShieldForNuget({
|
|
13655
13750
|
writer,
|
|
13656
13751
|
nuget
|
|
13657
13752
|
});
|
|
@@ -13662,78 +13757,113 @@ var ReadmeGenerator = class {
|
|
|
13662
13757
|
if (composer == null) {
|
|
13663
13758
|
return;
|
|
13664
13759
|
}
|
|
13665
|
-
this.writeShieldForComposer({
|
|
13760
|
+
await this.writeShieldForComposer({
|
|
13666
13761
|
writer,
|
|
13667
13762
|
composer
|
|
13668
13763
|
});
|
|
13669
13764
|
return;
|
|
13670
13765
|
}
|
|
13766
|
+
case "rust": {
|
|
13767
|
+
const cargo = language.publishInfo;
|
|
13768
|
+
if (cargo == null) {
|
|
13769
|
+
return;
|
|
13770
|
+
}
|
|
13771
|
+
await this.writeShieldForCargo({
|
|
13772
|
+
writer,
|
|
13773
|
+
cargo
|
|
13774
|
+
});
|
|
13775
|
+
return;
|
|
13776
|
+
}
|
|
13671
13777
|
default:
|
|
13672
13778
|
assertNever(language);
|
|
13673
13779
|
}
|
|
13674
13780
|
}
|
|
13675
|
-
writeShieldForNPM({
|
|
13781
|
+
async writeShieldForNPM({
|
|
13676
13782
|
writer,
|
|
13677
13783
|
npm
|
|
13678
13784
|
}) {
|
|
13679
|
-
writer.write("[![npm shield]");
|
|
13680
|
-
writer.write(`(https://img.shields.io/npm/v/${npm.packageName})]`);
|
|
13681
|
-
writer.writeLine(
|
|
13785
|
+
await writer.write("[![npm shield]");
|
|
13786
|
+
await writer.write(`(https://img.shields.io/npm/v/${npm.packageName})]`);
|
|
13787
|
+
await writer.writeLine(
|
|
13788
|
+
`(https://www.npmjs.com/package/${npm.packageName})`
|
|
13789
|
+
);
|
|
13682
13790
|
}
|
|
13683
|
-
writeShieldForPyPi({
|
|
13791
|
+
async writeShieldForPyPi({
|
|
13684
13792
|
writer,
|
|
13685
13793
|
pypi
|
|
13686
13794
|
}) {
|
|
13687
|
-
writer.write("[![pypi]");
|
|
13688
|
-
writer.write(`(https://img.shields.io/pypi/v/${pypi.packageName})]`);
|
|
13689
|
-
writer.writeLine(
|
|
13795
|
+
await writer.write("[![pypi]");
|
|
13796
|
+
await writer.write(`(https://img.shields.io/pypi/v/${pypi.packageName})]`);
|
|
13797
|
+
await writer.writeLine(
|
|
13798
|
+
`(https://pypi.python.org/pypi/${pypi.packageName})`
|
|
13799
|
+
);
|
|
13690
13800
|
}
|
|
13691
|
-
writeShieldForMaven({
|
|
13801
|
+
async writeShieldForMaven({
|
|
13692
13802
|
writer,
|
|
13693
13803
|
maven
|
|
13694
13804
|
}) {
|
|
13695
|
-
writer.write("[![Maven Central]");
|
|
13696
|
-
writer.write(
|
|
13805
|
+
await writer.write("[![Maven Central]");
|
|
13806
|
+
await writer.write(
|
|
13697
13807
|
`(https://img.shields.io/maven-central/v/${maven.group}/${maven.artifact})]`
|
|
13698
13808
|
);
|
|
13699
|
-
writer.writeLine(
|
|
13809
|
+
await writer.writeLine(
|
|
13700
13810
|
`(https://central.sonatype.com/artifact/${maven.group}/${maven.artifact})`
|
|
13701
13811
|
);
|
|
13702
13812
|
}
|
|
13703
|
-
writeShieldForGo({
|
|
13813
|
+
async writeShieldForGo({
|
|
13704
13814
|
writer,
|
|
13705
13815
|
go
|
|
13706
13816
|
}) {
|
|
13707
|
-
writer.write("[![go shield]");
|
|
13708
|
-
writer.write("(https://img.shields.io/badge/go-docs-blue)]");
|
|
13709
|
-
writer.writeLine(
|
|
13817
|
+
await writer.write("[![go shield]");
|
|
13818
|
+
await writer.write("(https://img.shields.io/badge/go-docs-blue)]");
|
|
13819
|
+
await writer.writeLine(
|
|
13820
|
+
`(https://pkg.go.dev/github.com/${go.owner}/${go.repo})`
|
|
13821
|
+
);
|
|
13710
13822
|
}
|
|
13711
|
-
writeShieldForRubyGems({
|
|
13823
|
+
async writeShieldForRubyGems({
|
|
13712
13824
|
writer,
|
|
13713
13825
|
rubyGems
|
|
13714
13826
|
}) {
|
|
13715
|
-
writer.write("[![gems shield]");
|
|
13716
|
-
writer.write(
|
|
13717
|
-
|
|
13827
|
+
await writer.write("[![gems shield]");
|
|
13828
|
+
await writer.write(
|
|
13829
|
+
`(https://img.shields.io/gem/v/${rubyGems.packageName})]`
|
|
13830
|
+
);
|
|
13831
|
+
await writer.writeLine(
|
|
13832
|
+
`(https://rubygems.org/gems/${rubyGems.packageName})`
|
|
13833
|
+
);
|
|
13718
13834
|
}
|
|
13719
|
-
writeShieldForNuget({
|
|
13835
|
+
async writeShieldForNuget({
|
|
13720
13836
|
writer,
|
|
13721
13837
|
nuget
|
|
13722
13838
|
}) {
|
|
13723
|
-
writer.write("[![nuget shield]");
|
|
13724
|
-
writer.write(
|
|
13725
|
-
|
|
13839
|
+
await writer.write("[![nuget shield]");
|
|
13840
|
+
await writer.write(
|
|
13841
|
+
`(https://img.shields.io/nuget/v/${nuget.packageName})]`
|
|
13842
|
+
);
|
|
13843
|
+
await writer.writeLine(`(https://nuget.org/packages/${nuget.packageName})`);
|
|
13726
13844
|
}
|
|
13727
|
-
writeShieldForComposer({
|
|
13845
|
+
async writeShieldForComposer({
|
|
13728
13846
|
writer,
|
|
13729
13847
|
composer
|
|
13730
13848
|
}) {
|
|
13731
|
-
writer.write("[![php shield]");
|
|
13732
|
-
writer.write("(https://img.shields.io/badge/php-packagist-pink)]");
|
|
13733
|
-
writer.writeLine(
|
|
13849
|
+
await writer.write("[![php shield]");
|
|
13850
|
+
await writer.write("(https://img.shields.io/badge/php-packagist-pink)]");
|
|
13851
|
+
await writer.writeLine(
|
|
13734
13852
|
`(https://packagist.org/packages/${composer.packageName})`
|
|
13735
13853
|
);
|
|
13736
13854
|
}
|
|
13855
|
+
async writeShieldForCargo({
|
|
13856
|
+
writer,
|
|
13857
|
+
cargo
|
|
13858
|
+
}) {
|
|
13859
|
+
await writer.write("[![crates.io shield]");
|
|
13860
|
+
await writer.write(
|
|
13861
|
+
`(https://img.shields.io/crates/v/${this.getCrateNameFromPackageName(cargo.packageName)})]`
|
|
13862
|
+
);
|
|
13863
|
+
await writer.writeLine(
|
|
13864
|
+
`(https://crates.io/crates/${this.getCrateNameFromPackageName(cargo.packageName)})`
|
|
13865
|
+
);
|
|
13866
|
+
}
|
|
13737
13867
|
generateContributing() {
|
|
13738
13868
|
return new Block({
|
|
13739
13869
|
id: "CONTRIBUTING",
|
|
@@ -13776,6 +13906,8 @@ function languageToTitle(language) {
|
|
|
13776
13906
|
return "C#";
|
|
13777
13907
|
case "php":
|
|
13778
13908
|
return "PHP";
|
|
13909
|
+
case "rust":
|
|
13910
|
+
return "Rust";
|
|
13779
13911
|
default:
|
|
13780
13912
|
assertNever(language);
|
|
13781
13913
|
}
|
|
@@ -13790,7 +13922,7 @@ function getMajorVersion(version) {
|
|
|
13790
13922
|
return version.split(".")[0] ?? "0";
|
|
13791
13923
|
}
|
|
13792
13924
|
function assertNever(x) {
|
|
13793
|
-
throw new Error(
|
|
13925
|
+
throw new Error(`unexpected value: ${JSON.stringify(x)}`);
|
|
13794
13926
|
}
|
|
13795
13927
|
|
|
13796
13928
|
// src/readme/ReadmeParser.ts
|
|
@@ -13816,7 +13948,8 @@ var ReadmeParser = class {
|
|
|
13816
13948
|
header += line;
|
|
13817
13949
|
continue;
|
|
13818
13950
|
}
|
|
13819
|
-
currentBlock.content += line
|
|
13951
|
+
currentBlock.content += `${line}
|
|
13952
|
+
`;
|
|
13820
13953
|
}
|
|
13821
13954
|
if (currentBlock) {
|
|
13822
13955
|
blocks.push(currentBlock);
|
|
@@ -13846,73 +13979,77 @@ var ReferenceGenerator = class {
|
|
|
13846
13979
|
}) {
|
|
13847
13980
|
this.referenceConfig = referenceConfig;
|
|
13848
13981
|
}
|
|
13849
|
-
async generate({
|
|
13982
|
+
async generate({
|
|
13983
|
+
output
|
|
13984
|
+
}) {
|
|
13850
13985
|
const writer = new StreamWriter(output);
|
|
13851
|
-
writer.writeLine("# Reference");
|
|
13986
|
+
await writer.writeLine("# Reference");
|
|
13852
13987
|
if (this.referenceConfig.rootSection != null) {
|
|
13853
|
-
this.writeRootSection({
|
|
13988
|
+
await this.writeRootSection({
|
|
13854
13989
|
section: this.referenceConfig.rootSection,
|
|
13855
13990
|
writer
|
|
13856
13991
|
});
|
|
13857
13992
|
}
|
|
13858
13993
|
for (const section of this.referenceConfig.sections) {
|
|
13859
|
-
this.writeSection({ section, writer });
|
|
13994
|
+
await this.writeSection({ section, writer });
|
|
13860
13995
|
}
|
|
13861
|
-
writer.end();
|
|
13996
|
+
await writer.end();
|
|
13862
13997
|
}
|
|
13863
|
-
writeRootSection({
|
|
13998
|
+
async writeRootSection({
|
|
13864
13999
|
section,
|
|
13865
14000
|
writer
|
|
13866
14001
|
}) {
|
|
13867
14002
|
if (section.description != null) {
|
|
13868
|
-
writer.writeLine(section.description);
|
|
14003
|
+
await writer.writeLine(section.description);
|
|
13869
14004
|
}
|
|
13870
14005
|
for (const endpoint of section.endpoints) {
|
|
13871
|
-
this.writeEndpoint({ endpoint, writer });
|
|
14006
|
+
await this.writeEndpoint({ endpoint, writer });
|
|
13872
14007
|
}
|
|
13873
14008
|
}
|
|
13874
|
-
writeSection({
|
|
14009
|
+
async writeSection({
|
|
13875
14010
|
section,
|
|
13876
14011
|
writer
|
|
13877
14012
|
}) {
|
|
13878
|
-
writer.writeLine(`## ${section.title}`);
|
|
14013
|
+
await writer.writeLine(`## ${section.title}`);
|
|
13879
14014
|
if (section.description != null) {
|
|
13880
|
-
writer.writeLine(section.description);
|
|
14015
|
+
await writer.writeLine(section.description);
|
|
13881
14016
|
}
|
|
13882
14017
|
for (const endpoint of section.endpoints) {
|
|
13883
|
-
this.writeEndpoint({ endpoint, writer });
|
|
14018
|
+
await this.writeEndpoint({ endpoint, writer });
|
|
13884
14019
|
}
|
|
13885
14020
|
}
|
|
13886
|
-
writeEndpoint({
|
|
14021
|
+
async writeEndpoint({
|
|
13887
14022
|
endpoint,
|
|
13888
14023
|
writer
|
|
13889
14024
|
}) {
|
|
13890
14025
|
const stringWriter = new StringWriter();
|
|
13891
14026
|
if (endpoint.description != null) {
|
|
13892
|
-
stringWriter.writeLine(
|
|
14027
|
+
await stringWriter.writeLine(
|
|
13893
14028
|
`#### \u{1F4DD} Description
|
|
13894
14029
|
|
|
13895
|
-
${this.
|
|
14030
|
+
${this.generateIndentedBlock(this.generateIndentedBlock(endpoint.description))}
|
|
13896
14031
|
`
|
|
13897
14032
|
);
|
|
13898
14033
|
}
|
|
13899
|
-
stringWriter.writeLine(
|
|
14034
|
+
await stringWriter.writeLine(
|
|
13900
14035
|
`#### \u{1F50C} Usage
|
|
13901
14036
|
|
|
13902
|
-
${this.
|
|
13903
|
-
this.
|
|
13904
|
-
|
|
14037
|
+
${this.generateIndentedBlock(
|
|
14038
|
+
this.generateIndentedBlock(
|
|
14039
|
+
`\`\`\`${this.referenceConfig.language.toLowerCase()}
|
|
14040
|
+
${endpoint.snippet}
|
|
14041
|
+
\`\`\``
|
|
13905
14042
|
)
|
|
13906
14043
|
)}
|
|
13907
14044
|
`
|
|
13908
14045
|
);
|
|
13909
14046
|
if (endpoint.parameters.length > 0) {
|
|
13910
|
-
stringWriter.writeLine(
|
|
14047
|
+
await stringWriter.writeLine(
|
|
13911
14048
|
`#### \u2699\uFE0F Parameters
|
|
13912
14049
|
|
|
13913
|
-
${this.
|
|
14050
|
+
${this.generateIndentedBlock(
|
|
13914
14051
|
endpoint.parameters.map(
|
|
13915
|
-
(parameter) => this.
|
|
14052
|
+
(parameter) => this.generateIndentedBlock(this.generateParameter(parameter))
|
|
13916
14053
|
).join("\n\n")
|
|
13917
14054
|
)}
|
|
13918
14055
|
`
|
|
@@ -13922,19 +14059,19 @@ ${this.writeIndentedBlock(
|
|
|
13922
14059
|
if (endpoint.title.returnValue != null) {
|
|
13923
14060
|
linkedSnippet += ` -> ${this.wrapInLink(endpoint.title.returnValue.text, endpoint.title.returnValue.location)}`;
|
|
13924
14061
|
}
|
|
13925
|
-
writer.writeLine(
|
|
14062
|
+
await writer.writeLine(
|
|
13926
14063
|
`<details><summary><code>${linkedSnippet}</code></summary>`
|
|
13927
14064
|
);
|
|
13928
|
-
writer.writeLine(this.
|
|
13929
|
-
writer.writeLine("</details>\n");
|
|
14065
|
+
await writer.writeLine(this.generateIndentedBlock(stringWriter.toString()));
|
|
14066
|
+
await writer.writeLine("</details>\n");
|
|
13930
14067
|
}
|
|
13931
|
-
|
|
14068
|
+
generateParameter(parameter) {
|
|
13932
14069
|
const desc = parameter.description?.match(/[^\r\n]+/g)?.length;
|
|
13933
14070
|
const containsLineBreak = desc != null && desc > 1;
|
|
13934
14071
|
return `**${parameter.name}:** \`${this.wrapInLink(parameter.type, parameter.location)}\` ${parameter.description != null ? (containsLineBreak ? "\n\n" : "\u2014 ") + parameter.description : ""}
|
|
13935
14072
|
`;
|
|
13936
14073
|
}
|
|
13937
|
-
|
|
14074
|
+
generateIndentedBlock(content) {
|
|
13938
14075
|
return `<dl>
|
|
13939
14076
|
<dd>
|
|
13940
14077
|
|
|
@@ -13956,13 +14093,13 @@ void yargs_default(hideBin(process.argv)).scriptName(process.env.CLI_NAME ?? "ge
|
|
|
13956
14093
|
"Generate a README.md using the provided configuration file.",
|
|
13957
14094
|
(argv) => argv.option("config", {
|
|
13958
14095
|
string: true,
|
|
13959
|
-
|
|
14096
|
+
required: true
|
|
13960
14097
|
}).option("original-readme", {
|
|
13961
14098
|
string: true,
|
|
13962
|
-
|
|
14099
|
+
required: false
|
|
13963
14100
|
}).option("output", {
|
|
13964
14101
|
string: true,
|
|
13965
|
-
|
|
14102
|
+
required: false
|
|
13966
14103
|
}),
|
|
13967
14104
|
async (argv) => {
|
|
13968
14105
|
if (argv.config == null) {
|
|
@@ -13990,10 +14127,10 @@ void yargs_default(hideBin(process.argv)).scriptName(process.env.CLI_NAME ?? "ge
|
|
|
13990
14127
|
"Generate an SDK reference (`reference.md`) using the provided configuration file.",
|
|
13991
14128
|
(argv) => argv.option("config", {
|
|
13992
14129
|
string: true,
|
|
13993
|
-
|
|
14130
|
+
required: true
|
|
13994
14131
|
}).option("output", {
|
|
13995
14132
|
string: true,
|
|
13996
|
-
|
|
14133
|
+
required: false
|
|
13997
14134
|
}),
|
|
13998
14135
|
async (argv) => {
|
|
13999
14136
|
if (argv.config == null) {
|
|
@@ -14114,7 +14251,7 @@ async function createWriteStreamFromFile(filepath) {
|
|
|
14114
14251
|
if (!await doesPathExist(filepath)) {
|
|
14115
14252
|
await (0, import_promises6.mkdir)(import_path7.default.dirname(filepath), { recursive: true });
|
|
14116
14253
|
}
|
|
14117
|
-
return
|
|
14254
|
+
return import_fs6.default.createWriteStream(filepath);
|
|
14118
14255
|
}
|
|
14119
14256
|
/*! Bundled license information:
|
|
14120
14257
|
|